﻿Imports ClasesRestaurante

Public Class FormCliDetallePedido

    Public nombreUsuario As String

    Private Sub FormCliDetallePedido_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Limpiar()
        cboProductos.Visible = False
    End Sub

    Private Sub FormCliDetallePedido_LocationChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LocationChanged
        Limpiar()
        cboProductos.Visible = False
    End Sub

    Private Sub Limpiar()

        lblPHNombre.Text = "nombre"
        lblPHDescripcion.Text = "descripción"
        lblPHPrecio.Text = "precio"

        lblPHNombre.Visible = True
        lblPHDescripcion.Visible = True
        lblPHPrecio.Visible = True

        lblPHNombre.ForeColor = Color.DarkGray
        lblPHDescripcion.ForeColor = Color.DarkGray
        lblPHPrecio.ForeColor = Color.DarkGray

        picProducto.Visible = False
        lblPHCantidad.Visible = False
        cboCantidad.Visible = False

        cboProductos.Items.Clear()
        cboCantidad.Text = Nothing

        btnAñadir.Enabled = False

    End Sub

    Private Sub CargarComboBox(ByVal tipoProducto As String)

        cboProductos.Items.Clear()

        For Each KeyValueProducto As KeyValuePair(Of String, Producto) In ProductosRestaurante
            Dim producto As Producto = KeyValueProducto.Value
            If producto.GetType.Name = tipoProducto Then cboProductos.Items.Add(KeyValueProducto.Key)
        Next

    End Sub

    Private Sub cboTipoProducto_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboTipoProducto.SelectedValueChanged
        Limpiar()
        CargarComboBox(cboTipoProducto.Text)
        cboProductos.Visible = True
    End Sub

    Private Sub cboProductos_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboProductos.SelectedValueChanged

        lblPHNombre.Text = ProductosRestaurante(cboProductos.Text).NombreProducto
        lblPHDescripcion.Text = ProductosRestaurante(cboProductos.Text).DescripcionProducto
        lblPHPrecio.Text = ProductosRestaurante(cboProductos.Text).PrecioProducto

        lblPHNombre.ForeColor = Color.Black
        lblPHDescripcion.ForeColor = Color.Black
        lblPHPrecio.ForeColor = Color.Black

        For i As Integer = 0 To OfertasRestaurante.Count - 1
            If (OfertasRestaurante(OfertasRestaurante.Keys(i)).NombreOfertas = cboProductos.Text AndAlso OfertasRestaurante(OfertasRestaurante.Keys(i)).FechaVigor < Date.Today()) Then
                lblPHPrecio.Text = OfertasRestaurante(OfertasRestaurante.Keys(i)).ProductoOfertado.PrecioProducto
                lblPHPrecio.ForeColor = Color.DarkViolet
                Exit For
            End If
        Next

        picProducto.Image = ProductosRestaurante(cboProductos.Text).ImagenProducto

        picProducto.Visible = True
        lblPHCantidad.Visible = True
        cboCantidad.Visible = True

    End Sub

    Private Sub cboCantidad_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboCantidad.SelectedValueChanged

        If cboCantidad.Text = Nothing Then
            Exit Sub
        End If

        btnAñadir.Enabled = True

    End Sub

    Private Sub btnAñadir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAñadir.Click

        If Not PedidosRestaurante.ContainsKey(nombreUsuario & " - " & Today()) Then
            PedidosRestaurante.Add(nombreUsuario & " - " & Today(), New Pedido(nombreUsuario, Today()))
        End If

        If Not PedidosRestaurante(nombreUsuario & " - " & Today()).CantidadProductos.ContainsKey(lblPHNombre.Text) Then
            PedidosRestaurante(nombreUsuario & " - " & Today()).AñadirProducto(lblPHNombre.Text, Decimal.Parse(lblPHPrecio.Text), Integer.Parse(cboCantidad.Text))
        Else
            MessageBox.Show("Ya se ha introducido el producto " & lblPHNombre.Text & " en el pedido.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.None)
            Limpiar()
            CargarComboBox(cboTipoProducto.Text)
            cboProductos.Visible = True
        End If


        Limpiar()
        CargarComboBox(cboTipoProducto.Text)

    End Sub

    Private Sub btnVerPedido_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnVerPedido.Click

        If PedidosRestaurante.ContainsKey(nombreUsuario & " - " & Today()) Then

            If PedidosRestaurante(nombreUsuario & " - " & Today()).Confirmado = True Then
                If MessageBox.Show("El pedido está confirmado. ¿Quieres anular su confirmación?", "CONFIRMACION", MessageBoxButtons.YesNo, MessageBoxIcon.None) = Windows.Forms.DialogResult.Yes Then
                    PedidosRestaurante(nombreUsuario & " - " & Today()).Confirmado = False
                    FormCliPedidoTotal.ShowDialog()
                End If
            Else
                FormCliPedidoTotal.ShowDialog()
            End If

        Else
            MessageBox.Show("Todavía no se ha añadido ningún producto", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.None)

        End If

    End Sub

End Class